<?xml version="1.0" standalone="yes" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="employerReturn2006" version="1.7">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">Employer Payroll Returns Schema for year 2006.</xsd:documentation>
	</xsd:annotation>
	<!--
		Root Element for Electronic Employer Returns
	-->
	<xsd:element name="employerReturn" type="employerReturnType" />
	<!--
		Definition of employerReturn type
	-->
	<xsd:complexType name="employerReturnType">
		<xsd:sequence>
			<!-- Date File Written -->
			<xsd:element name="dateFilWri" type="xsd:date" />
			<!-- Details per Employer -->
			<xsd:element name="employersHeader" type="employersHeaderType" minOccurs="1" maxOccurs="unbounded" />
		</xsd:sequence>
	</xsd:complexType>
	<!--
		Employer Header 
	-->
	<xsd:complexType name="employersHeaderType">
		<xsd:sequence>
			<!-- Version Code -->
			<xsd:element name="versCode" type="versCodeType" />
			<!-- Business Name -->
			<xsd:element name="bussName" type="string50" />
			<!-- Business Address -->
			<xsd:element name="bussAdd" type="addressType" />
			<!-- Business Termination Date -->
			<xsd:element name="bussTermDate" type="xsd:date" minOccurs="0" />
			<!-- Is this a Nil Return -->
			<xsd:element name="nilReturn" type="ynType" />
			<!-- Is BIK provided -->
			<xsd:element name="BIKProvided" type="ynType" />
			<!-- Total Number of Employees -->
			<xsd:element name="totaEmpe" type="xsd:integer" />
			<!-- Total Number of Subcontractors  -->
			<xsd:element name="totaSub" type="xsd:integer" />
			<!-- Total Number of Exempt Certificate Subcontractors -->
			<xsd:element name="totaSubCert" type="xsd:integer" />
			<!-- Totals: Payroll -->
			<xsd:group ref="payrollTotals" minOccurs="0" />
			<!-- Totals: Business Benefits in Kind -->
			<xsd:element name="totalBusBen" type="xsd:integer" minOccurs="0" />
			<!-- Total Tax Deducted Overall -->
			<xsd:element name="totalTaxDedOver" type="xsd:double" />
			<!-- Employees Header -->
			<xsd:element name="employeesHeader" type="employeesHeaderType" minOccurs="0" maxOccurs="unbounded" />
		</xsd:sequence>
		<!-- Employer Tax Ref -->
		<xsd:attribute name="emplTaxRef" type="taxpayerRefType" use="required" />
		<!-- Employer Business Ref -->
		<xsd:attribute name="emplBusRef" type="emplBusRefType" use="required" />
		<!-- Tax Year -->
		<xsd:attribute name="taxYear" type="xsd:gYear" use="required" />
		<!-- Tax Month -->
		<xsd:attribute name="taxMonth" type="xsd:gMonth" use="required" />
	</xsd:complexType>
	<!--
		Employees Header
	-->
	<xsd:complexType name="employeesHeaderType">
		<xsd:sequence>
			<!-- Employee Surname -->
			<xsd:element name="empeSurNam" type="string50" />
			<!-- Employee Forename -->
			<xsd:element name="empeForNam" type="string40" />
			<!-- Husband Forenames -->
			<xsd:element name="husbForNam" type="string40" minOccurs="0" />
			<!-- Husband Surname -->
			<xsd:element name="husbSurNam" type="string50" minOccurs="0" />
			<!-- Employee Address -->
			<xsd:element name="empeAdd" type="addressType" minOccurs="0" />
			<!-- Employee Tax Ref -->
			<xsd:element name="empeTaxRef" type="taxpayerRefType" minOccurs="0" />
			<!-- Employee Social Security Code -->
			<xsd:element name="empeSocSec" type="socSecType" minOccurs="0" />
			<!-- Payroll Details -->
			<xsd:element name="payroll" type="payrollType" minOccurs="0" />
			<!-- Benefits In Kind Details -->
			<xsd:element name="BIK">
				<xsd:complexType>
					<xsd:choice>
						<!-- BIK Return for Year End -->
						<xsd:element name="BIKdetails" type="BIKdetailsType" />
						<!-- BIK to Follow = Y or No BIK for employee or Not Year End = N -->
						<xsd:element name="BIKtoFollow" type="ynType" />
					</xsd:choice>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<!-- 
		Payroll Details Type 
	-->
	<xsd:complexType name="payrollType">
		<xsd:sequence>
			<!-- Employment Periods -->
			<xsd:element name="empePeriod" minOccurs="0" maxOccurs="unbounded">
				<xsd:complexType>
					<xsd:sequence>
						<!-- Date Employment Started -->
						<xsd:element name="empeDatSt" type="xsd:date" minOccurs="0" />
						<!-- Date Employment Ended -->
						<xsd:element name="empeDatEn" type="xsd:date" minOccurs="0" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<!-- Nature of Employment -->
			<xsd:element name="empeNatu" type="string40" minOccurs="0" />
			<!-- Payroll Number -->
			<xsd:element name="empeNumber" type="string20" minOccurs="0" />
			<!-- Narrative -->
			<xsd:element name="empeNarr" type="string40" minOccurs="0" />
			<xsd:choice>
				<!-- Employee Non Subcontractor -->
				<xsd:element name="NonSub">
					<xsd:complexType>
						<xsd:sequence>
							<!-- Employee Gross Pay Month -->
							<xsd:element name="empeGroPay" type="xsd:double" />
							<!-- Employee Gross Pay Year to Date -->
							<xsd:element name="empeGroPayYTD" type="xsd:double" />
							<!-- Employee Superannuation Month -->
							<xsd:element name="empeSupAnn" type="xsd:double" />
							<!-- Employee Superannuation Year to Date -->
							<xsd:element name="empeSupAnnYTD" type="xsd:double" />
							<!-- Employee Tax Deducted Month -->
							<xsd:element name="empeTaxDed" type="xsd:double" />
							<!-- Employee Tax Deducted Year to Date-->
							<xsd:element name="empeTaxDedYTD" type="xsd:double" />
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<!-- Subcontractor Non Exempt -->
				<xsd:element name="SubNonExe">
					<xsd:complexType>
						<xsd:sequence>
							<!-- Subcontractor Gross Pay Month -->
							<xsd:element name="subGroPay" type="xsd:double" /> 
							<!-- Subcontractor Gross Pay Year to Date -->
							<xsd:element name="subGroPayYTD" type="xsd:double" />
							<!-- Subcontractor Tax Deducted Month -->
							<xsd:element name="subTaxDed" type="xsd:double" />
							<!-- Subcontractor Tax Deducted Year to Date-->
							<xsd:element name="subTaxDedYTD" type="xsd:double" />
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<!-- Subcontractor Exempt -->
				<xsd:element name="SubExe">
					<xsd:complexType>
						<xsd:sequence>
							<!-- Subcontractor Exemption Certificate Number -->
							<xsd:element name="subExeCertNo" type="string8" />
							<!-- Subcontractor Exempt Gross Pay Month -->
							<xsd:element name="subExeGroPay" type="xsd:double" />
							<!-- Subcontractor Exempt Gross Pay Year to Date -->
							<xsd:element name="subExeGroPayYTD" type="xsd:double" />
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:choice>
			<!-- Effective Rate Applied -->
			<xsd:element name="empeEffRat" type="percentageType" /> 
			<!-- Was this effective rate applied for the complete month -->
			<xsd:element name="empeEfeDif" type="ynType" />
		</xsd:sequence>
	</xsd:complexType>
	<!-- Totals: Payroll -->
	<xsd:group name="payrollTotals">
		<xsd:sequence>
			<!-- Total Value of Gross Pay Month -->
			<xsd:element name="totalGroPay" type="xsd:double" />
			<!-- Total Value of Gross Pay Year to Date -->
			<xsd:element name="totalGroPayYTD" type="xsd:double" />
			<!-- Total Value of Superannuation Month -->
			<xsd:element name="totalSupAnn" type="xsd:double" />
			<!-- Total Value of Superannuation Year to Date -->
			<xsd:element name="totalSupAnnYTD" type="xsd:double" />
			<!-- Total Value of Tax Deducted Month -->
			<xsd:element name="totalTaxDed" type="xsd:double" />
			<!-- Total Value of Tax Deducted Year to Date  -->
			<xsd:element name="totalTaxDedYTD" type="xsd:double" />
			<!-- Total Value of Subcontractor Gross Pay Month -->
			<xsd:element name="totalSubGroPay" type="xsd:double" />
			<!-- Total Value of Subcontractor Gross Pay Year to Date -->
			<xsd:element name="totalSubGroPayYTD" type="xsd:double" />
			<!-- Total Value of Subcontractor Tax Deducted Month -->
			<xsd:element name="totalSubTaxDed" type="xsd:double" />
			<!-- Total Value of Subcontractor Tax Deducted Year to Date  -->
			<xsd:element name="totalSubTaxDedYTD" type="xsd:double" />
			<!-- Total Value of Subcontractor Exempt Gross Pay Month -->
			<xsd:element name="totalExeGroPay" type="xsd:double" />
			<!-- Total Value of Subcontractor Exempt Gross Pay Year to Date -->
			<xsd:element name="totalExeGroPayYTD" type="xsd:double" />
		</xsd:sequence>
	</xsd:group>
	<!-- 
		BIK Details Type 
	-->
	<xsd:complexType name="BIKdetailsType">
		<xsd:sequence>
			<!-- Accommodation Elements -->
			<xsd:element name="accommodation" type="accommodationType" minOccurs="0" maxOccurs="unbounded" />
			<!-- Owned Vehicle Elements -->
			<xsd:element name="ownedVehicle" type="ownedVehicleType" minOccurs="0" maxOccurs="unbounded" />
			<!-- Leased Vehicle Elements -->
			<xsd:element name="leasedVehicle" type="leasedVehicleType" minOccurs="0" maxOccurs="unbounded" />
			<!-- Other Benefits Elements -->
			<xsd:element name="otherBenefits" type="otherBenefitsType" minOccurs="0" maxOccurs="unbounded" />
		</xsd:sequence>
	</xsd:complexType>
	<!--
		Accomodation Elements
	-->
	<xsd:complexType name="accommodationType">
		<xsd:sequence>
			<!-- Accommodation Address -->
			<xsd:element name="accoAdds" type="addressType" minOccurs="0" />
			<!-- Accommodation Notes -->
			<xsd:element name="accoNote" type="lineType" minOccurs="0" maxOccurs="unbounded" />
			<!-- Date Benefit Started -->
			<xsd:element name="accoBenSta" type="xsd:date" minOccurs="0" />
			<!-- Date Benefit Ended -->
			<xsd:element name="accoBenEnd" type="xsd:date" minOccurs="0" />
			<!-- Employee Sum Paid -->
			<xsd:element name="accoSumPai" type="xsd:integer" />
			<!-- Calculation Basis -->
			<xsd:element name="accoBasis">
				<xsd:complexType>
					<xsd:choice>
						<xsd:element name="accoEmol">
							<xsd:complexType>
								<xsd:sequence>
									<!-- Employee Emoluments -->
									<xsd:element name="accoEmpEmo" type="xsd:double" />
									<!-- Accommodation Furnished -->
									<xsd:element name="accoFurn" type="ynType" />
									<!-- Business Use -->
									<xsd:element name="accoBusUse" type="percentageType" />
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="accoWeek">
							<xsd:complexType>
								<xsd:sequence>
									<!-- Agreement with Tax Office -->
									<xsd:element name="accoAgrTax" type="ynType" />
									<!-- Weekly Benefit Rate -->
									<xsd:element name="accoWeeBen" type="xsd:integer" />
									<!-- Agreement Reference -->
									<xsd:element name="accoAgrRef" type="string20" minOccurs="0" />
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
					</xsd:choice>
				</xsd:complexType>
			</xsd:element>
			<!-- Derived: Taxable Benefit -->
			<xsd:element name="accoTaxBen" type="xsd:integer" />
		</xsd:sequence>
	</xsd:complexType>
	<!--
		Owned Vehicle Elements
	-->
	<xsd:complexType name="ownedVehicleType">
		<xsd:sequence>
			<!-- Vehicle Type -->
			<xsd:element name="oVehType" type="vehType" />
			<!-- Year Vehicle Acquired -->
			<xsd:element name="oVehYeaAcq" type="xsd:gYear" />
			<!-- Original Price -->
			<xsd:element name="oVehOriPri" type="xsd:integer" />
			<!-- Year Vehicle 1st Available -->
			<xsd:element name="oVehYeaAva" type="xsd:gYear" />
			<!-- Date Benefit Started -->
			<xsd:element name="oVehBenSta" type="xsd:date" minOccurs="0" />
			<!-- Date Benefit Ended -->
			<xsd:element name="oVehBenEnd" type="xsd:date" minOccurs="0" />
			<!-- Employee Sum Paid -->
			<xsd:element name="oVehSumPai" type="xsd:integer" minOccurs="0" />
			<!-- Business Use -->
			<xsd:element name="oVehBusUse" type="percentageType" />
			<!-- Vehicle Registration -->
			<xsd:element name="oVehRegi" type="string20" minOccurs="0" />
			<!-- Vehicle Notes -->
			<xsd:element name="oVehNote" type="lineType" minOccurs="0" maxOccurs="unbounded" />
			<!-- Derived: Taxable Benefit -->
			<xsd:element name="oVehTaxBen" type="xsd:integer" />
		</xsd:sequence>
	</xsd:complexType>
	<!--
		Leased Vehicle Elements
	-->
	<xsd:complexType name="leasedVehicleType">
		<xsd:sequence>
			<!-- Vehicle Type -->
			<xsd:element name="lVehType" type="vehType" />
			<!-- Date Contract Started -->
			<xsd:element name="lVehConSta" type="xsd:date" />
			<!-- Date Contract Ended -->
			<xsd:element name="lVehConEnd" type="xsd:date" />
			<!-- Market Value Over Threshold -->
			<xsd:element name="lVehMarVal" type="ynType" />
			<!-- Total Cost of Lease -->
			<xsd:element name="lVehTotCos" type="xsd:integer" />
			<!-- Cost of Lease in YOA -->
			<xsd:element name="lVehYeaCos" type="xsd:integer" />
			<!-- Uneven Payments -->
			<xsd:element name="lVehUnePay" type="ynType" />
			<!-- Date Benefit Started -->
			<xsd:element name="lVehBenSta" type="xsd:date" minOccurs="0" />
			<!-- Date Benefit Ended -->
			<xsd:element name="lVehBenEnd" type="xsd:date" minOccurs="0" />
			<!-- Employee Sum Paid -->
			<xsd:element name="lVehSumPai" type="xsd:integer" minOccurs="0" />
			<!-- Business Use -->
			<xsd:element name="lVehBusUse" type="percentageType" />
			<!-- Lease Contract Reference-->
			<xsd:element name="lVehConRef" type="string20" minOccurs="0" />
			<!-- Vehicle Notes -->
			<xsd:element name="lVehNote" type="lineType" minOccurs="0" maxOccurs="unbounded" />
			<!-- Derived: Taxable Benefit -->
			<xsd:element name="lVehTaxBen" type="xsd:integer" />
		</xsd:sequence>
	</xsd:complexType>
	<!--
		Other Benefits
	-->
	<xsd:complexType name="otherBenefitsType">
		<xsd:sequence>
			<!-- Other Benefit Type -->
			<xsd:element name="othBenType" type="string50" />
			<!-- Other Type Notes -->
			<xsd:element name="othBenNot" type="lineType" minOccurs="0" maxOccurs="unbounded" />
			<!-- Taxable Benefit -->
			<xsd:element name="othTaxBen" type="xsd:integer" />
		</xsd:sequence>
	</xsd:complexType>
	<!-- 
		Complex Data Type Definitions 
	-->
	<xsd:complexType name="addressType">
		<xsd:sequence>
			<xsd:element name="AddressLine1" type="string50" />
			<xsd:element name="AddressLine2" type="string40" minOccurs="0" />
			<xsd:element name="AddressLine3" type="string30" minOccurs="0" />
			<xsd:element name="AddressLine4" type="string20" minOccurs="0" />
			<xsd:element name="PostCode" type="string8" minOccurs="0" />
		</xsd:sequence>
	</xsd:complexType>
	<!-- 
		Simple Data Type Definitions 
	-->
	<xsd:simpleType name="lineType">
		<xsd:restriction base="xsd:string" />
	</xsd:simpleType>
	<xsd:simpleType name="taxpayerRefType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[B,C,D,E,N,S]{1}[A-Z]{1}[0-9]{1,5}[A-Z]?" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="emplBusRefType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]{2}" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="socSecType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[A-Z]{2}[0-9]{6}[A-Z]{0,1}" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="versCodeType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[O,R]{1}" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ynType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[Y,N]{1}" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="percentageType">
		<xsd:restriction base="xsd:double">
			<xsd:minInclusive value="0" />
			<xsd:maxInclusive value="100" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="vehType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[C,M,B,A,H]{1}" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="string8">
		<xsd:restriction base="string">
			<xsd:maxLength value="8" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="string12">
		<xsd:restriction base="string">
			<xsd:maxLength value="12" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="string20">
		<xsd:restriction base="string">
			<xsd:maxLength value="20" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="string30">
		<xsd:restriction base="string">
			<xsd:maxLength value="30" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="string40">
		<xsd:restriction base="string">
			<xsd:maxLength value="40" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="string50">
		<xsd:restriction base="string">
			<xsd:maxLength value="50" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="string">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="\p{IsBasicLatin}*"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>